学习笔记21 MySQL准备(三)3.25 您所在的位置:网站首页 mysql dual 查询多行 学习笔记21 MySQL准备(三)3.25

学习笔记21 MySQL准备(三)3.25

2023-04-28 07:39| 来源: 网络整理| 查看: 265

===这一节主要讲了以下部分:

一、合并查询的union和union all

两者都是简单的将两个表合并,后者还会将重复行保留。

二、子查询

有三种,分别是from where和exists(4.23

第4节 合并查询4.1 union

这个操作语句用于合并两个或多个select语句的结果集,并且消除重复行。

注意,union内部的select语句必须有着相同数量的列,并且数据类型相似,同时select语句中的列的顺序也必须一致。

==这里union的用处还是合并两个查询,让两个查询的结果集一起显示。

这里非常完整的讲解了表的创建

然后通过insert into的方式将这些数据放到表中,数据如下

这个时候我们希望将两个表的数据连接起来,使用select将两个表中两个不同的列给抽取并连接起来。这里用的时左右外连接。

选择的列数必须相同;所选列的数据必须相同的数据类型;列的名称不必相同;null值不会被忽略。

4.2 union all

运算符用两个select语句将结果组合起来,重复行也会包含,运算符所要遵循的原则与union一致。

上述代码用union all 替换了union之后就会变成如下结果

==两者的区别就是包不包含重复行

区别:

1 重复值:union在进行表连接后会筛选掉重复的记录,而union all不会。

2 union all只是简单的将两个结果合并后就返回。

3 执行效率上union all会更快

第5节 子查询

5.1 子查询是什么

一条sql语句查询的结果作为另一条sql语句的一部分。

子查询必须放在小括号里面

子查询的常见分类:

1where :将子查询的结果作为父查询的比较条件

2 from :将子查询的结果提供给父层查询

3 exists:子查询的结果是单列多行,类似一个数组,父层使用in函数,包含子查询结果。

==感觉平时用的最多的还是from

5.2 子查询结果作为查询条件

需求1 通过子查询,查询价格最高的商品信息

之间将问题拆解,先找到最高价格,然后据此去找商品信息,这里并没有在第一步就找对应商品,而是找价格。

需求2 查询化妆品分类下商品名称,商品价格

同需求1一样,首先找到化妆品的分类信息,依据这个再去找其他信息

需求3 查询小于平均价格商品信息

先找出平均价格。

5.3 子查询的结果作为一张表

需求1 查询商品中,价格大于500的商品信息,包括 商品名称 商品价格 商品所属分类名称

这里其实简单的使用内连接就可以解决了,这里还用了子查询。不过得注意,当子查询变成一张表的时候,必须起别名,否则无法访问。

5.4 子查询结果是单列多行

子查询的结果类似一个数组, 父层查询使用 IN 函数 ,包含子查询的结果

需求1 查询价格小于两千的商品,来自于哪些分类(名称)

但是直接这样使用会报错,因为子查询的结果是一个区间,这时候把where那里的=改成in就可以了。

需求2  查询家电类 与 鞋服类下面的全部商品信息

5.5 子查询总结

子查询如果查出的是一个字段(单列), 那就在where后面作为条件使用.

单行是=,多行是in

子查询如果查询出的是多个字段(多列), 就当做一张表使用(要起别名)

第6节 牛刀小试(汽车新零售)

一,涉及业务介绍

某头部汽车新零售企业立足下沉市场,通过网络渠道和品牌广告获取大量汽车销售线索,并借助大量地面销售在线下门店完成客户成交孵化,该企业最终依靠自建供应链建立的护城河来赚取采购差价,同时也通过给客户提供低首付金融租赁产品来赚取金融费用(车贷)。该公司商业分析师需要从数据层面去驱动投放团队去做效率优化,以助力业务正常健康发展。

二,涉及业务数据及字典

clue_day是线索表

order_day是订单成交表

三,需求确认

1.需求1:查询线索(二级渠道jdsc)后续转化成交车型详情

先要对需求进行解析:其实就是看一下二级渠道jdsc,它下面线索成交时,客户买的时啥车型。

结合数据表分析:

线索和渠道在clue表中;购买车型在order表中

需要进行clue表和order表的关联查询(使用内连接进行关联查询)

条件:二级渠道jdsc

返回结果:线索id ,线索所属渠道名称,购买车型

下面用两种连接方式解决

1 隐式内连接

2 显式内连接

需求2 统计所有渠道(按照二级渠道)的转化率

需求3 查询各城市线索数并计算所有城市线索总数

需求4 找出优质渠道,做重点投入

我们对于优质渠道(以二级渠道来说)的定义:

1 该二级渠道内平均转化周期< 整体平均转化周期

2 该二级渠道的线索量 > 各二级渠道平均线索量

解析:

with as 的用法(扩展):如果一整句查询中多个子查询都需要使用同一个子查询的结果,那

么我们就就建议用with,将共用的子查询用简写表示出来。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有